home *** CD-ROM | disk | FTP | other *** search
/ HamCall (October 1991) / HamCall (Whitehall Publishing)(1991).bin / bcast / miscbcst / stlrfb.bas < prev    next >
BASIC Source File  |  1990-10-14  |  5KB  |  139 lines

  1. 0    '+++ STL.BAS  STL SYSTEM PLANNER +++
  2. 5  '+ BY RONALD F. BALONIS  5/20/87   +
  3. 10 '+ BASED ON TFT'S STL SYSTEM BOOK  +
  4. 15 '+"A PRIMER: AURAL MICROWAVE LINKS"+
  5. 20 RUN 30
  6. 30 TLE$="+ 950 MHZ STL SYSTEM PLANNER +"
  7. 40 FO=.95:RD=45/ATN(1)
  8. 45 '
  9. 50  CLS:PRINT TAB(25) TLE$: PRINT
  10. 60      LINE INPUT "STL SYSTEM: ";STL$
  11. 70       IF STL$="" THEN STOP
  12. 80 '
  13. 90  PRINT:'---PROMPT FOR SYSTEM DATA
  14. 100 PRINT  "STL SYSTEM GAINS :"
  15. 105 '
  16. 110 PRINT " TX POWER     (WATTS) ";
  17. 115   INPUT TPWR$: TPWR=VAL(TPWR$)
  18. 120   IF TPWR<=0 THEN STOP
  19. 125    IF TPWR>100 THEN 0
  20. 130     TPWR=10*LOG(TPWR/.001)/LOG(10)
  21. 135 '
  22. 140  PRINT " TX ANTENNA GAIN (DB) ";
  23. 145   INPUT TXANT$: TXANT=ABS(VAL(TXANT$))
  24. 150 '
  25. 155  PRINT "  ANTENNA ELEV <M/FT> ";
  26. 160   INPUT TELEV$: TELEV=ABS(VAL(TELEV$))
  27. 165   IF RIGHT$(TELEV$,1)="M" THEN 190
  28. 170    IF RIGHT$(TELEV$,2)<>"FT" THEN 0
  29. 175 '---SET CONSTANTS: METRIC OR ENGLISH
  30. 180     ELEV$="FT":UNIT$="MI":EK=.667
  31. 185     K=96.6:KK=1.609344:FK=72.1:GOTO 200
  32. 190     ELEV$="M ":UNIT$="KM":EK=.078
  33. 195     K=92.4:KK=1!     :FK=17.3
  34. 198  '
  35. 200  PRINT " RX  SIGNAL   <DB/UV> ";
  36. 205   INPUT RSIG$: RSIG=-ABS(VAL(RSIG$))
  37. 210    RSIG$=RIGHT$(RSIG$,2)
  38. 215    IF RSIG$="UV" THEN 225
  39. 220     IF RSIG$="DB" THEN 235 ELSE 0
  40. 225      RSIG=20*LOG(ABS(RSIG)/224000!)/LOG(10)
  41. 230 '
  42. 235  PRINT " RX ANTENNA GAIN (DB) ";
  43. 240   INPUT RXANT$: RXANT=ABS(VAL(RXANT$))
  44. 245 '
  45. 250  PRINT "  ANTENNA ELEV.  ("ELEV$") ";
  46. 255   INPUT RELEV$: RELEV=ABS(VAL(RELEV$))
  47. 260 '
  48. 290 PRINT:LOCATE 5,39
  49. 300 PRINT"STL SYSTEM LOSSES:"
  50. 305  LOCATE 6,39
  51. 310  PRINT " PATH LENGTH      ("UNIT$") ";
  52. 315   INPUT PATH$: PATH=ABS(VAL(PATH$))
  53. 325    IF PATH>0 THEN 400
  54. 330 '
  55. 335  LOCATE 7,40
  56. 340  PRINT " FROM:     <LAT/LONG> ";
  57. 345  INPUT D$:J=INSTR(D$,"/")
  58. 350  IF J=0 THEN 0 ELSE GOSUB 8000:D1=D
  59. 355   D$=MID$(D$,J+1,6):GOSUB 8000:D2=D
  60. 360  LOCATE 8,40
  61. 365  PRINT " TO  :     <LAT/LONG> ";
  62. 370  INPUT D$:J=INSTR(D$,"/")
  63. 375  IF J=0 THEN 0 ELSE GOSUB 8000:D3=D
  64. 380   D$=MID$(D$,J+1,6):GOSUB 8000:D4=D
  65. 385   GOSUB 5000:LOCATE 9,40
  66. 390 PRINT USING" PATH LENGTH = ###.##";PATH;
  67. 395 PRINT UNIT$" AT ";USING"N ###.##E";BRG
  68. 398 '
  69. 400 '----CALCULATE SPACE LOSS OVER PATH
  70. 405 SPACE=K+20*LOG(.95)/LOG(10)+20*LOG(PATH)/LOG(10)
  71. 410  LOCATE 10,39
  72. 415  PRINT " TXLINE LOSS      (DB) ";
  73. 420   INPUT XLOSS$: XLOSS=ABS(VAL(XLOSS$))
  74. 430 '
  75. 450  LOCATE 11,39
  76. 455  PRINT " OTHER LOSSES     (DB) ";
  77. 460   INPUT OTHER$: OTHER=ABS(VAL(OTHER$))
  78. 490 '
  79. 500 LOCATE 13,1
  80. 505 PRINT "SYSTEM CALCULATIONS:"
  81. 510  PRINT " TXPWR + TXANT + RXANT = TOTAL GAIN"
  82. 515   TGAIN=TPWR+TXANT+RXANT
  83. 520  PRINT USING " ###.# +";TPWR;TXANT;
  84. 525  PRINT USING " ###.# = ###.# DB";RXANT;TGAIN
  85. 530  LOCATE 14,39
  86. 535  PRINT " PATH  + TXLINE+ OTHER = TOTAL LOSS"
  87. 540   TLOSS=SPACE+XLOSS+OTHER
  88. 545  LOCATE 15,39
  89. 550  PRINT USING " ###.# +";SPACE;XLOSS;
  90. 555  PRINT USING " ###.# = ###.# DB";OTHER;TLOSS
  91. 560  PRINT
  92. 600  PRINT " RX'D SIG  -  RX SIG   = FADE MARGIN"
  93. 605   SIGNAL=TGAIN-TLOSS:FADE=SIGNAL-RSIG
  94. 610  PRINT USING"  ###.#    -  ###.#   ";SIGNAL;RSIG;
  95. 615  PRINT USING" = ###.# DB";FADE
  96. 620  LOCATE 17,39:DD=PATH*KK/1.609344:A=1:B=.25:'AVERAGE & INLAND
  97. 625   PREL=100-100*(A*B*.0000025*FO*DD*DD*DD*EXP(-FADE/10*LOG(10)))
  98. 630  PRINT USING" PATH RELIABILITY      = ###.##### %";PREL
  99. 635  LOCATE 18,39
  100. 655   FZ=.6*FK*SQR(((PATH/2)^2)/(FO*PATH))
  101. 660  PRINT USING" 0.6 FRESNEL RADIUS    = ###.# \ \";FZ;ELEV$
  102. 675  LOCATE 19,40
  103. 680  PRINT"[ TX  ] --> PATH PROFILE [%DISTANCE]/[DISTANCE]/[REQ'D CLEARELEV] --> [ RX  ]"
  104. 715  PRINT
  105. 800  PRINT"[  0% ][ 10% ][ 20% ][ 30% ][ 40% ][ 50% ][ 60% ][ 70% ][ 80% ][ 90% ][100% ]"
  106. 805  FOR I=0 TO 10 STEP 1
  107. 810   PRINT USING "[###.#]";PATH*I/10;
  108. 815  NEXT I
  109. 820  PRINT:D=PATH
  110. 825 '
  111. 830  PRINT USING "####.# ";TELEV;
  112. 840  FOR I=1 TO 9 STEP 1
  113. 845   EBULGE=EK*(D*I/10)*(D-D*I/10)
  114. 850   FZ=.6*FK*SQR(((D*I/10)*(D-D*I/10))/(FO*D))
  115. 855   HT=RELEV*(TELEV>=RELEV)-TELEV*(RELEV>TELEV)
  116. 860   CLR=HT-FZ-EBULGE+ABS(TELEV-RELEV)*I/10
  117. 865   PRINT USING "####.# ";ABS(CLR);
  118. 870  NEXT I
  119. 880  PRINT USING "####.#";RELEV;
  120. 890  A$=INPUT$(1):RUN 0
  121. 1000 '
  122. 5000 '---COMPUTE DIST&BRG BY 73.208 WAY
  123. 5100 D6=ABS(D3-D1):D7=ABS(D4-D2):D=(D1+D3)/2
  124. 5200 IF D<25 OR D>50 THEN RUN 0 ELSE D=D/RD
  125. 5400  LA=D6*(111.13209#-.56605*COS(2*D)+.0012*COS(4*D))
  126. 5500  LB=D7*(111.41513#*COS(D)-.09455*COS(3*D)+.00012*COS(5*D))
  127. 7000  IF LA>0 THEN BRG=ATN(LB/LA)*RD ELSE BRG=90
  128. 7010   IF D1>D3 AND D2>D4 THEN BRG=180-BRG 
  129. 7020    IF D1>D3 AND D2<=D4 THEN BRG=180+BRG
  130. 7030     IF D1<=D3 AND D2<=D4 THEN BRG=360-BRG
  131. 7040      PATH=SQR(LA*LA+LB*LB)/KK:RETURN
  132. 7050 '-CONVERT LAT/LONG TO DECIMAL DEG.
  133. 8000 L=VAL(D$):I=INSTR(D$,".")
  134. 8005 F=(I<>0)*(I<5)-2*(I>4)-3*(I=0)
  135. 8010  IF F=1 THEN D=L:RETURN
  136. 8015   IF F=3 THEN GOSUB 8020:L=D
  137. 8020    D=INT(L/100):D=D+(L-D*100)/60:RETURN
  138. 8025 '--------END OF PROGRAM-----------
  139.